package com.ruoyi.merchant.mapper;


import com.ruoyi.merchant.domain.OrderReview;
import com.ruoyi.merchant.domain.vo.ReviewStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单评价Mapper接口
 */
public interface OrderReviewMapper {
    
    /**
     * 查询订单评价列表（商家端）
     *
     * @param orderReview 订单评价
     * @return 订单评价集合
     */
    List<OrderReview> selectMerchantReviewList(OrderReview orderReview);

    /**
     * 查询订单评价详情
     *
     * @param reviewId 评价ID
     * @return 订单评价
     */
    OrderReview selectReviewById(@Param("reviewId") Long reviewId);

    /**
     * 更新商家回复
     *
     * @param orderReview 订单评价
     * @return 结果
     */
    int updateReviewReply(OrderReview orderReview);

    /**
     * 查询商家评价统计
     *
     * @param merchantId 商家ID
     * @return 统计数据
     */
    ReviewStatisticsVO selectReviewStatistics(@Param("merchantId") Long merchantId);

    /**
     * 查询评分分布
     *
     * @param merchantId 商家ID
     * @return 评分分布
     */
    List<ReviewStatisticsVO.ScoreDistribution> selectScoreDistribution(@Param("merchantId") Long merchantId);

    /**
     * 查询商家的平均评分
     *
     * @param merchantId 商家ID
     * @return 平均评分
     */
    BigDecimal selectAvgScoreByMerchantId(@Param("merchantId") Long merchantId);
}
